package com.sikaryofficial.backend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sikaryofficial.backend.domain.entity.ActivityPrizeRelation;
import com.sikaryofficial.backend.domain.vo.ActivityResultCacheVO;
import com.sikaryofficial.backend.domain.vo.PointConsumerVO;

import java.util.List;
import java.util.Set;

/**
 * 活动奖品Service接口
 *
 * @author qinjinyuan
 * @date 2024-07-15
 */
public interface IActivityPrizeRelationService extends IService<ActivityPrizeRelation> {
    /**
     * 根据礼品ID获取有关联的礼品ID
     *
     * @param prizeIds 奖品ID集合
     * @return 有关联的礼品ID
     */
    Set<Long> getRelationPrizeId(List<Long> prizeIds);

    /**
     * 检查是否关联了 奖项概率之和等于100的奖品
     *
     * @param activityId 活动ID
     * @return true/false
     */
    boolean checkIfRelatedPrizesExceedOneHundred(Long activityId);

    /**
     * 根据活动ID集合获取所有关联奖项信息列表
     *
     * @param activityIds 活动ID集合
     * @return 关联奖项信息列表
     */
    List<PointConsumerVO> getPointConsumerList(List<Long> activityIds);

    /**
     * 获取已中实物奖结果数据
     *
     * @param activityIds
     * @return
     */
    List<ActivityResultCacheVO> getActivityResultCacheList(List<Long> activityIds);

    List<PointConsumerVO> getPointConsumer(Long activityId);
}
